package org.pb.user.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.pb.basic.utils.AjaxResult;
import org.pb.user.dto.UserDto;
import org.pb.user.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.converter.xml.AbstractJaxb2HttpMessageConverter;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

/**
 * user表对应的请求接口
 * @author 10844
 */
@RestController
@RequestMapping("/user")
@Api(tags = "用户请求接口")
public class UserController {

    @Autowired
    private IUserService userService;

    /**
     * 根据传输的用户信息实现用户注册
     * @param userDto 用户注册信息
     * @return 返回注册结果
     */
    @PostMapping("/register/phone")
    @ApiOperation(value = "平台用户账号注册", notes = "平台用户通过手机号注册账号")
    public AjaxResult userRegister(@RequestBody UserDto userDto) {
        try {
            // 执行用户注册操作
            userService.userRegister(userDto);
            // 如果没有出现异常，则表示注册成功
            return AjaxResult.successWithMessage("注册成功");
        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.failedWithMessage(e.getMessage());
        }
    }

    /**
     * 微信用户绑定平台用户接口
     * @param map
     * @return
     */
    @PostMapping("/binder")
    @ApiOperation(value = "微信用户绑定平台账号", notes = "微信用户绑定当前平台账号信息，实现账号数据互通")
    public AjaxResult wxUserBindUser(@RequestBody Map<String, String> map) {
        try {
            // 如果绑定过程中没有出现异常，表示绑定成功，返回绑定结果数据
            return userService.bind(map);
        } catch (Exception e) {
            e.printStackTrace();
            // 如果绑定过程出现了异常，表示绑定失败
            return AjaxResult.failedWithMessage(e.getMessage());
        }
    }

}
